package com.xhs.service;

import com.mybatisflex.annotation.UseDataSource;
import com.mybatisflex.core.service.IService;
import com.xhs.dto.request.CompanyAddParams;
import com.xhs.dto.request.CompanyEditParams;
import com.xhs.dto.request.CompanyPageParams;
import com.xhs.dto.request.DelCompanyParam;
import com.xhs.entity.MeCompanyEntity;
import com.xhs.message.ReturnResult;

import java.util.List;

/**
 * 客户表 服务层。
 *
 * @author xhs
 * @since 2023-08-03
 */
@UseDataSource("mybatis-flex-demo")
public interface MeCompanyService extends IService<MeCompanyEntity> {

    /**
     * 分页查询客户信息
     *
     * @param pageParams 查询条件
     * @return ReturnResult<Object>
     */
    ReturnResult<Object> getCompanyInfoPage(CompanyPageParams pageParams);

    /**
     * 查询企业的受益人
     *
     * @param pageParams 查询条件
     * @return ReturnResult<Object>
     */
    ReturnResult<Object> getCompanyBeneficiary(CompanyPageParams pageParams);

    /**
     * 新增企业
     *
     * @param params 参数
     * @return ReturnResult<Object>
     */
    ReturnResult<Object> addCompany(CompanyAddParams params);


    /**
     * 删除企业
     *
     * @param paramList 入参
     * @return ReturnResult<String>
     */
    ReturnResult<String> delCompany(List<DelCompanyParam> paramList);

    /**
     * 修改企业
     *
     * @param param 入参
     * @return ReturnResult<String>
     */
    ReturnResult<String> updateCompany(CompanyEditParams param);

    /**
     * 根据企业ID查询企业数据
     *
     * @param guId 入参
     * @return ReturnResult<MeCompanyEntity>
     */
    ReturnResult<MeCompanyEntity> getCompany(String guId);
}
